#ifndef ALIEN_ATTACK_CALLBACK_H
#define ALIEN_ATTACK_CALLBACK_H

struct Callback
{
    virtual void call() = 0;
};

struct StaticCallback : public Callback
{
    // takein: void()
    StaticCallback(void (*func)())
    {
    }

    virtual void call()
    {
        m_func();
    }

private:
    void (*m_func)();
};

#endif // header file protect